#装饰器
'''
目的是做一个修饰器来监听 一个函数的执行效率；
1、实现修饰器可以监听任何函数
2、把函数的执行时间输出打印
3、通过修饰器，来获取2个函数的执行效率
'''
import  time #导入时间信息
def xiushiqi(fun):
    '''
    定义装饰器
    :param fun:参数为函数传值
    :return:返回一个函数用来执行 fun 的中间函数 并且获取执行时间
    '''
    def zhixing(*args,**kw):
        '''
        用这个函数来执行 fun 函数 ；并且加入开始和结束时间
        :param args:
        :param kw:
        :return:
        '''
        kai = time.time() #执行函数前的时间
        fun(*args,**kw)
        jie = time.time() #执行函数后的时间
        print(fun.__name__,'函数执行了 {:.4f} 秒'.format(jie-kai))
    return zhixing
@xiushiqi  #装饰器 定义后 yewu1 实际上 是 zhixing 函数了；
def yewu1(cishu):
    '''
    业务函数1
    :param cishu:
    :return:
    '''
    i = 0
    while cishu > 0:
        if i == 0:
            print('执行总次数：',cishu)
        i += 1
        cishu -=1
@xiushiqi
def yewu2(cishu):
    '''
    业务函数二
    :param cishu:
    :return:
    '''
    i = 0
    while cishu > 0:
        if i == 0:
            print('执行总次数：',cishu)
        i +=1
        cishu -=1

print('='*40,'执行业务函数一','='*40)
yewu1(5000000)
print('='*40,'执行业务函数二','='*40)
yewu2(8000000)